// 思路：分为已排序和未排序两个子序列，每轮遍历，从未排序序列中找到最小的值与首位交换位置
function selectionSort(arr) {
    for (let i = 0; i < arr.length; i++) {
        let minIndex = i
        for (let j = i; j < arr.length; j++) {
            if (arr[j] < arr[minIndex]) {
                minIndex = j
            }            
        }        
        if (minIndex !== i) {
            [arr[minIndex], arr[i]] = [arr[i], arr[minIndex]];
        }
    }
    return arr
}

// 时间复杂度 On2
// 不稳定排序
let arr = [6, 2, 4, 3, 3, 5, 1, 4]

console.log(selectionSort(arr))